

#include"Connection.h"
#include<muduo/base/Logging.h>


// 初始化数据库连接
Connection::Connection()
{
	_conn = mysql_init(nullptr);
}
// 释放数据库连接资源
Connection::~Connection()
{
	if (_conn != nullptr)
		mysql_close(_conn);
}
// 连接数据库
bool Connection::connect(string ip, unsigned short port, string user, string password,
	string dbname)
{
	MYSQL* p = mysql_real_connect(_conn, ip.c_str(), user.c_str(),
		password.c_str(), dbname.c_str(), port, nullptr, 0);

	if (p != nullptr)
    {
        LOG_INFO << "mysql connect success!";
        // c c++ 默认字符编码ASCII 如果不设置 中文就会乱码
        mysql_query(_conn, "utf8mb4");
    }
    else
    {
        LOG_INFO << "mysql connect fail!";
    }


	return p != nullptr;
}
// 更新操作 insert、delete、update
bool Connection::update(string sql)
{
	if (mysql_query(_conn, sql.c_str()))
	{
		LOG_INFO << __FILE__ << ":" << __LINE__ << ":"
                 << sql << "更新失败!";
        LOG_INFO << "错误信息: " << mysql_error(_conn);
		return false;
	}
	return true;
}
// 查询操作 select
MYSQL_RES* Connection::query(string sql)
{
	if (mysql_query(_conn, sql.c_str()))
	{
		LOG_INFO << __FILE__ << ":" << __LINE__ << ":"
                 << sql << "查询失败!";
        return nullptr;
	}
	return mysql_use_result(_conn);
}


